<template>
	<view>
		<view v-if="inPorcessOrderId != null" class="order-process" @click="toOrder">您有进行中的订单,点击查看</view>

		<map id="map" :longitude="from.longitude" :latitude="from.latitude" :style="contentStyle" scale="15" :enable-traffic="false" :show-location="true" :enable-poi="true" class="map">
			<cover-image class="location" src="../../static/workbench/location.png" @tap="toLocationHandle()"></cover-image>
		</map>
		<view class="panel">
			<view class="from" @tap="chooseLocationHandle('from')">
				<text>{{ from.address }}</text>
			</view>
			<view class="dashed-line"></view>
			<view class="to" @tap="chooseLocationHandle('to')">
				<text>{{ to.address }}</text>
			</view>
			<button class="btn" @tap="toCreateOrderHandle">查看路线</button>
		</view>
	</view>
</template>

<script>

import GtPush from '../../lib/gtpush-min.js'
	//地图点选插件
const chooseLocation = requirePlugin('chooseLocation');
let QQMapWX = require('../../lib/qqmap-wx-jssdk.min.js');
let qqmapsdk ;

export default {
	data() {
		return {
			//开始位置
			from: {
				address: '输入你的开始位置',
				longitude: 0,
				latitude: 0
			},
			//结束位置
			to: {
				address: '输入你的目的地',
				longitude: 0,
				latitude: 0
			},

			//窗口样式
			contentStyle: 'height:700px',
			windowHeight: 0,
			//地图对象
			map: null,
			//标记:开始位置点选或者结束位置点选
			chooseFromOrToflag: null,
			inPorcessOrderId:null,
			chooseType:"",
		};
	},
	methods: {
    //初始化窗口样式
    initStyle(){
      let _this = this;
      //处理窗口样式
      let windowHeight = uni.getSystemInfoSync().windowHeight;//获取当前屏幕的高度
      _this.windowHeight = windowHeight;
      _this.contentStyle = `height:${_this.windowHeight}px;`;
    },
    /* 加载地图 */
    loadMap(){
      var _this = this;
      uni.getLocation({
        type: 'gcj02',
        success: function (res) {
          _this.from.latitude = res.latitude
          _this.from.longitude = res.longitude
          _this.initStartAddress(res.latitude, res.longitude);
        }
      });
    },
    toLocationHandle(){
      var _this = this;
      _this.loadMap()

      setTimeout(()=>{
        _this.map.moveToLocation({
          longitude:  _this.from.longitude,
          latitude:  _this.from.latitude,
        })
      },100)
    },
    //初始化开始位置
    initStartAddress(latitude,longitude){
      let _this = this;
      qqmapsdk.reverseGeocoder({
        //坐标
        location: {
          latitude: latitude,
          longitude: longitude
        },
        success(res){
          let result = res.result;
          _this.from.address = result.address;
        }
      });
    },
    chooseLocationHandle(type){
      this.chooseType = type;
      const key = this.Consts.QQMAP_KEY; //使用在腾讯位置服务申请的key
      const referer = 'fccar1104'; //调用插件的app的名称
      wx.navigateTo({
        url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
      });
    },
    //地图点选结果回调
    chooseLocationCallback(location){
      console.log(location)
      if(!location || !location.address)return;
      let _this = this;
      //给开始或结束位置赋值
      if(_this.chooseType == "from"){
        //开始位置点选
        _this.from.address = location.name;
        _this.from.latitude = location.latitude;
        _this.from.longitude = location.longitude;
      }else{
        //结束位置点选
        _this.to.address = location.name;
        _this.to.latitude = location.latitude;
        _this.to.longitude = location.longitude;
      }
    },
    toCreateOrderHandle(){
      var _this = this
      if(_this.from.longitude == 0 || _this.to.longitude == 0){
        uni.showToast({
          title:"请完善位置信息",icon:"error"
        })
        return;
      }

      // var orderPoint = {
      //   from:_this.from,
      //   to:_this.to
      // }
      // uni.setStorageSync("orderPoint",orderPoint);
      uni.setStorageSync("from",_this.from);
      uni.setStorageSync("to",_this.to);

      //跳转
      uni.navigateTo({
        url:"/pages/create_order/create_order"
      })

    }

	},
	onShow: function() {
    this.chooseLocationCallback(chooseLocation.getLocation())
	},
	onHide: function() {
	},
	onLoad: function() {
    this.initStyle();

		let _this = this;
    qqmapsdk = new QQMapWX({
      key: _this.Consts.QQMAP_KEY
    });
    _this.map = uni.createMapContext("map",this)
    _this.loadMap()
	},
	onUnload: function() {

	}
};
</script>

<style lang="less">
@import url('workbench.less');
</style>
